package tfc_editor.tests;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import tfc_editor.*;
import tfc_editor.GUI.FinestraCrearUsuari;

/**
 * Clase que testeja la creacio d'uns quants usuaris.
 * @author Ismael Gonzalez Burgos
 *
 */
public class Test3 extends TestCase
{
	private Main app;

	/**
	 * Constructor de la clase.
	 * @param name Nom que rebem del JUnit.
	 */
	public Test3(String name)
	{
		super(name);
	}

	/**
	 * Funcio que crea un usuari indicant
	 * @param login Login a crear.
	 * @param pass Password del usuari a crear.
	 */
	public void CreaUsuari(String login,String pass)
	{
    	FinestraCrearUsuari fcu = new FinestraCrearUsuari(app.GetEditor().GetPastryManager(),app.GetEditor());
		fcu.setVisible(true);
		fcu.TestSetUserToCreate(login,pass);			
	}

	/**
	 * Funcio d'inicialitzacio del test.
	 */
	protected void setUp() 
	{
		System.out.println("[Test3] Strarting");
		System.out.println("[Test3] Test to create users.");
		
		try 
		{
			app = new Main();
			app.Start();
			CreaUsuari("Pep","asdf");			
			CreaUsuari("Pau","catemo");			
			CreaUsuari("Ramon","jarl");			
			CreaUsuari("Manolo","rasputin");			
			CreaUsuari("Ana","asdf");			
			CreaUsuari("Maria","catemo");			
			CreaUsuari("Klaus","jarl");			
			CreaUsuari("Meïer","rasputin");			
			CreaUsuari("Alejandro","rasputin");			
			CreaUsuari("reasdfdf","asdf");			
			CreaUsuari("jarl","catemo");			
			CreaUsuari("alfa","jarl");			
			CreaUsuari("beta","rasputin");
			CreaUsuari("Maria2","catemo");			
			CreaUsuari("Klaus2","jarl");			
			CreaUsuari("Meïer2","rasputin");			
			CreaUsuari("Alejandro2","rasputin");			
			CreaUsuari("reasdfdf2","asdf");			
			CreaUsuari("jarl2","catemo");			
			CreaUsuari("alfa2","jarl");			
			CreaUsuari("beta2","rasputin");
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}

	/**
	 * Funcio de finalitzacio del test.
	 */
	protected void tearDown()
	{
		System.out.println("[Test3] - Ending");
	}

	/**
	 * Funcio que crea el test.
	 * @return Instacia de la clase de test.
	 */
	public static Test suite()
	{
		return new TestSuite(Test3.class);
	}

	/**
	 * Funcio nula que ha de ser sobrecarregada del TestCase.
	 * @throws Exception Excepcio de fallada.
	 */
	public void testAbstractions() throws Exception 
	{

	}
}
